import { defineStore } from "pinia";
import { getCs } from "../api/system/csgl/cszc";

export const useDictStore = defineStore("dict", {
  state: () => ({
    DICT_msg_time: 1000,
    // 阅文意见的办理方式
    DICT_xtsz_blfs: null,
    // 阅文意见的请
    DICT_xtsz_qing: null,
    // 称谓
    DICT_xtsz_cw: null,
    DICT_MJ: null,
    DICT_ISDECRYPT: null, // 是否加密数据库数据
    DICT_ISGETDATABYRZ: null, // 是否从认证获取数据
    DICT_SHOW_AUTH: null, // 是否使用权限
    DICT_ISQYSY: null, // 是否启用三员
    DICT_PAGE_SIZE_LIST: null,
    DICT_PASSWORD_STRENDTH: null,
    DICT_bw_state: [
      {
        label: "回收",
        value: 1024,
        icon: "rollback",
      },
      {
        label: "办结",
        value: 2048,
        icon: "check",
      },
      {
        label: "办理中",
        value: 4,
        icon: "dian",
      },
      {
        label: "已办",
        value: 8,
        icon: "check",
      },
      {
        label: "待办",
        value: 0,
        icon: "yanjing-fang",
      },
      {
        label: "待办",
        value: 1,
        icon: "yanjing-fang",
      },
      {
        label: "待办",
        value: 2,
        icon: "yanjing-fang",
      },
      {
        label: "待阅",
        value: 4096,
        icon: "daiyue",
      },
      {
        label: "已阅",
        value: 8192,
        icon: "yiyue",
      },
    ],
  }),
  actions: {
    // 设置字典值
    setDictValue(keyValueMap) {
      this[keyValueMap.key] = keyValueMap.value;
    },
    // 设置消息时长
    setMsgTime(value) {
      this.DICT_msg_time = value;
    },
    // 获取参数
    async getCs(codeKeyObj) {
      if (this[codeKeyObj.dictKey]) {
        return;
      }
      try {
        const res = await getCs(codeKeyObj.code);
        if (res.result.defauleValues) {
          let DICT_VALUE = [];
          if (res.result.defauleValues.indexOf(";") > -1) {
            DICT_VALUE = res.result.defauleValues.split(";");
          } else if (res.result.defauleValues.indexOf(",") > -1) {
            DICT_VALUE = res.result.defauleValues.split(",");
          } else {
            DICT_VALUE = res.result.defauleValues.split(",");
          }
          this.setDictValue({
            key: codeKeyObj.dictKey,
            value: DICT_VALUE,
          });
        }
      } catch (error) {
        console.error("获取字典值失败:", error);
      }
    },
    // 获取参数字符串
    async getCsStr(codeKeyObj) {
      if (this[codeKeyObj.dictKey]) {
        return;
      }
      try {
        const res = await getCs(codeKeyObj.code);
        if (res.result.defauleValues) {
          this.setDictValue({
            key: codeKeyObj.dictKey,
            value: res.result.defauleValues,
          });
        }
      } catch (error) {
        console.error("获取字典字符串失败:", error);
        throw error;
      }
    },
    // 获取消息时长
    async getMsgTime() {
      try {
        const res = await getCs("csgl_msg_time");
        if (res.result.defauleValues) {
          try {
            let timeNum = Number(res.result.defauleValues);
            this.setMsgTime(timeNum);
          } catch (e) {
            console.error("转换消息时长失败:", e);
          }
        }
      } catch (error) {
        console.error("获取消息时长失败:", error);
      }
    },
  },
});
